Redashのメール送信設定にAmazon SESを使ってみた
Redashのアカウント新規登録にて個別実施時にはメール送信が必要だと知りました。メール送信手段について色々な選択肢を試した結果Amazon SESに落ち着きましたが、SESを利用する設定も若干試行錯誤が伴いました。備忘録として残すことにします。
Amazon SESの設定
SESの設定は以下の記事を参考にしてください。
環境設定
必要な環境変数へ指定を入れるだけで完了です。
Redashにて今回用いた変数は以下の通り。
key | value |
---|---|
REDASH_MAIL_DEFAULT_SENDER | user@domain |
REDASH_MAIL_SERVER | email-smtp.ap-northeast-1.amazonaws.com |
REDASH_MAIL_PORT | 587 |
REDASH_MAIL_USE_TLS | True |
REDASH_MAIL_SERVERのリージョン名部分は適度変更してください。コードベースでの実装は必要なく、Redashの管理画面上からメール送信用設定で操作できる場所もありません。
変数更新後に動作確認したい場合
デプロイによる変数更新後に再送信する場合はUsersのPending Invitationsから対象ユーザに対してResend Invitationを実行してください。送信完了とは表示されますが、送信処理が失敗していても完了とでます。実際の状況はCloudWatch等からログを確認する必要があります。
よくあるエラー
メールアドレスが認証されていないと出る
以下のエラーが出る場合はSandboxが有効になっている可能性を考慮します。検証目的なら追加認証を、そうでないならSandbox解除申請を行います。
Message rejected: Email address is not verified. The following identities failed the check in region AP-NORTHEAST-1: user@domain
STARTTLSが必要と出る
smtplib.SMTPAuthenticationError: (530, b'Must issue a STARTTLS command first')
REDASH_MAIL_USE_TLS
がTrue
になっている状態で出る場合は、opensslをインストールしてみましょう。
apt-get install openssl
あとがき
ポートとTLS,SSLの設定の組み合わせで手間取ったものの、動作完了まで至れました。送信設定で躓いている場合の参考になれば幸いです。
今回の設定にて一部参考にしていますが、AirFlowでのメール送信設定を行いたい場合は以下の記事を参考にしてください。